Skip to content

Conversation

@ulgens
Copy link
Member

@ulgens ulgens commented Jan 19, 2026

Coming from #2321 (comment)

This PR handles

phase 1 (compile textual requirement files with uv pip compile and install them with pip)

I preferred export over pip compile. It doesn't seem there are any functional differences between two approaches, it just felt more uv-native.

It seems we can't use hashes. With hashes, pip install fails with

ERROR: Can't verify hashes for these requirements because we don't have a way to hash version control repositories:
    django-push@ git+https://github.com/brutasse/django-push.git@22fda99641cfbd2f3075a723d92652a8e38220a5 from git+https://github.com/brutasse/django-push.git@22fda99641cfbd2f3075a723d92652a8e38220a5 (from -r requirements/tests.txt (line 207))

I also made use of uv-pre-commit hook to ensure output files are always synchronized with the pyproject.toml file.

Overall, the PR introduces a new pyproject.toml based setup for managing dependencies and project settings, without breaking the existing tooling built on requirements/ folder.

@ulgens ulgens requested review from pauloxnet and removed request for pauloxnet January 19, 2026 20:33
@ulgens ulgens marked this pull request as draft January 19, 2026 20:34
@ulgens ulgens marked this pull request as ready for review January 19, 2026 20:44
@ulgens ulgens requested review from a team and pauloxnet January 19, 2026 20:44
@ulgens ulgens self-assigned this Jan 19, 2026
@ulgens ulgens added the dependencies Pull requests that update a dependency file label Jan 19, 2026
Black automatically picks up "requires-python" value from pyproject.toml, this argument is no longer needed.
"sentry-sdk==2.49.0",
]

# TODO: Consider merging with dev group
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah I think test & dev are really the same thing.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@django/django-website How do you feel here?

version = "0.0.1"
description = "Source code to djangoproject.com"
requires-python = ">=3.12"
classifiers = [
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Probably don't need these. They're for pypi metadata only I think.

Copy link
Member Author

@ulgens ulgens Jan 20, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The biggest usecase is PyPI metadata but I think they are useful for communicating what is supported. Can also be used for generating badges: https://shields.io/badges/py-pi-versions-from-framework-classifiers

Python classifiers are pushed by the default pyproject-fmt setup. It can be disabled, but I see no harm.

I can remove them, there is not much benefit, but I'm on the side of keeping them documentation/communication purposes.

@ulgens
Copy link
Member Author

ulgens commented Jan 21, 2026

There is already a conflict with common.txt file and #2467 introduces a new dependency. One of the PRs will need to be rebased, depending on which one gets merged first.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants